#ifndef EDITPATIENTINFO_H
#define EDITPATIENTINFO_H

#include <QWidget>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QLabel>
#include <QLineEdit>
#include <QRadioButton>
#include <QScrollArea>
#include <QComboBox>
#include <QCalendarWidget>
#include <QButtonGroup>
#include <QPlainTextEdit>
#include <QPushButton>
#include "PatientManagerWidget_global.h"
#include "../BaseWidgets/BaseDialogWithShadow.h"
#include "../../DataManager/UserRepository/UserRepository.h"
#include "CalendarComboBoxLikeWidget.h"


namespace UserManagementSystem {

//每次编辑患者弹出的窗口，会在工作窗口的内容区域防止一个scrollarea和，一系列的控件内容
class PATIENTMANAGERWIDGET_EXPORT EditPatientInfo : public BaseDialogWithShadow
{
    Q_OBJECT
public:
    EditPatientInfo(QWidget* parent=nullptr,UserRepository* m_userrepository=nullptr,int row=-1);


private:
    ///@brief 布局
    void SetDefaultLayout();

    ///@brief 样式
    void SetDefaultStyle();

    ///@brief 将data加载进窗口中
    void LoadDataToWidget();

private:
    ///@brief 记录工作窗口
    BaseDialog* m_workWidget=nullptr;

    ///@brief work窗口需要一个垂直布局
    QVBoxLayout* m_workLayout=nullptr;

    ///@brief 自己的内容窗口
    QFrame * m_contentWidget=nullptr;

    ///@brief 滑动区域
    QScrollArea * m_scrollArea=nullptr;

    ///@brief 一个主布局
    QVBoxLayout* m_mainLayout=nullptr;

signals:
    ///@brief 点击确认按钮
    void On_comfirm_Btn_Clicked_Signals();

public slots:
    void On_comfirm_Btn_Clicked();

    ///@brief 男性别按钮点击
    void On_man_clicked();

    /// @brief 女性别按钮点击
    void On_female_clicked();

    /// @brief 其他性别按钮点击
    void On_other_clicked();

private://其他控件

    ///@brief 标签
    QLabel* m_nameLab=nullptr,*m_firstNameLab=nullptr,*m_genderLab=nullptr,*m_birthdayLab=nullptr,
          * m_phoneLab=nullptr,*m_mailLab=nullptr,*m_addressLab=nullptr,*m_annotationLab=nullptr;

    ///@brief 关闭窗口按钮
    QPushButton* m_closeBtn=nullptr;

    ///@brief 输入框
    QLineEdit* m_nameEdit=nullptr;
    QLineEdit* m_firstNameEdit=nullptr;

    QLineEdit* m_phoneEdit=nullptr;
    QLineEdit* m_mailEdit=nullptr;
    QLineEdit* m_addressEdit=nullptr;

    ///@brief 生日选择下拉框
    CalendarComboBoxLikeWidget* m_birbox=nullptr;


    ///@brief 一个注释填写窗口
    QPlainTextEdit* m_annotationEdit=nullptr;

    ///@brief 性别按钮组
    QButtonGroup* m_btnsGroup=nullptr;
    QHBoxLayout* m_btnsLayout=nullptr;
    QRadioButton* m_manBtn=nullptr;
    QRadioButton* m_femaleBtn=nullptr;
    QRadioButton* m_otherBtn=nullptr;
    int m_gender=2;

    ///从row行加载过来的信息
    UserManagementSystem::PatientData m_data;
};
}


#endif // EDITPATIENTINFO_H
